package com.kmmlearn.findtime

interface TimeZoneHelper {
    /**
     * This is a list of all time zones from the JetBrains kotlinx-datetime library
     */
    fun getTimeZoneStrings(): List<String>

    /**
     * return the current formatted time
     */
    fun currentTime(): String

    /**
     * return the current time zone id
     */
    fun currentTimeZone(): String

    /**
     * return the number of hours from the given time zone id
     */
    fun hoursFromTimeZone(otherTimeZoneId: String): Double

    /**
     * return the formatted time for the given time zone id
     */
    fun getTime(timeZoneId: String): String

    /**
     * return the formatted date for the given time zone id
     */
    fun getDate(timeZoneId: String): String

    /**
     * search for a list of hours that start at `startHour` and end at `endHour`
     * and are in all the given time zone strings
     */
    fun search(startHour: Int, endHour: Int, timeZoneStrings: List<String>): List<Int>
}